package com.shuang.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.Cookie;

import com.shuang.common.PageObject;
import com.shuang.pojo.DbUser;

public interface DbUserService {
	//测试项目框架
	public DbUser getDbUserByUid();
	/**
	 * 获取管理员列表
	 * @return
	 */
	public PageObject<DbUser> getAdminList(int page,int rows);
	/**
	 * 获取会员列表
	 * @return
	 */
	public PageObject<DbUser> getUserList(int page,int rows);
	/**
	 * 增加用户
	 * @param dbUser
	 * @return
	 */
	public int insertUser(DbUser dbUser) throws Exception;
	/**
	 * 更新用户
	 * @param dbUser
	 * @return
	 * @throws Exception
	 */
	public int updateUser(DbUser dbUser) throws Exception;
	
	/**
	 * 更新用户账号能否登陆状态
	 * @param uIds
	 * @param status
	 * @return
	 */
	public int updateUserStatusById(List<Long> uIds, short status)  throws Exception;
	
	/**
	 * 分页获取会员列表
	 * @return
	 */
	public PageObject<DbUser> getUserListByExample(DbUser dbUser, int page,
			int rows);	
	/**
	 * 校验数据
	 * @param content校验的数据
	 * @param type校验的数据类型，1用户名，2，邮箱,3手机号码
	 * @return
	 */
	public Map<String,Object> checkData(String content,String type); 
	
	/**
	 * 前台注册用户
	 * @param dbUser
	 * @return
	 */
	public Map<String,Object> createUser(DbUser dbUser);
	
	/**
	 * 用户登陆
	 * @param uname
	 * @param upwd
	 * @return
	 */
	public Map<String,Object> userLogin(String uname,String upwd,short role)  throws  Exception;
	/**
	 * 查询token并更新该token的过期时间，
	 * @param token
	 * @return 成功返回用户信息、状态等
	 */
	public Map<String,Object> selectUserFromRedisByToken(String token) throws  Exception;
	/**
	 * 退出登陆
	 * @param type
	 * @param cookies
	 * @return
	 */
	public Map<String, Object> quit(String type, Cookie[] cookies);
	
	
	public int updateUserSelectiveByPrimaryKey(DbUser dbUserTemp);
}
